const url = require("url")

const u = "http://www.baidu.com:3000/s?kw=杭州#top";

// 将字符的url解析成对象
console.log(url.parse(u, true))

// {
//     protocol: 'http:',   // 协议
//     slashes: true,       // 是否使用斜杠语法
//     auth: null,          // 用户信息
//     host: 'www.baidu.com:3000',   // 域名含端口
//     port: 3000,      // 端口
//     hostname: 'www.baidu.com',   // 域名
//     hash: '#top',        // 锚点连接
//     search: '?kw=杭州',   // 查询数据
//     query:  { kw: '杭州' },     // 解析后的查询数据
//     pathname: '/s',      // 路径
//     path: '/s?kw=杭州',      // 路径含查询数据
//     href: 'http://www.baidu.com/s?kw=杭州#top'   // 完整url
// }

const obj = {
    protocol: 'http:',   // 协议
    slashes: true,       // 是否使用斜杠语法
    auth: null,          // 用户信息
    host: 'www.baidu.com:3000',   // 域名含端口
    port: 3000,      // 端口
    hostname: 'www.baidu.com',   // 域名
    hash: '#top',        // 锚点连接
    search: '?kw=杭州',   // 查询数据
    query:  { kw: '杭州' },     // 解析后的查询数据
    pathname: '/s',      // 路径
    path: '/s?kw=杭州',      // 路径含查询数据
    href: 'http://www.baidu.com/s?kw=杭州#top'   // 完整url
}

// 将对象的url解析成字符
console.log(url.format(obj))


// Node新增的解析URL的方式
// const u = new URL("http://localhost:3000/s?kw=杭州#top")
// console.log(u);